/**
 * 
 */
package com.ffcs.crmd.tsp.api.netty;

/**
 * 功能说明:
 *
 * @author ZHONGFUHUA
 * 
 * @since 
 *
 */
public interface INettyConfigServer {
    
    /**
     * 功能说明: 获取netty服务器端口
     *
     * @return listenPort netty服务器端口
     */
    public int getListenPort();
    
    /**
     * 功能说明: 设置netty服务器端口
     *
     * @param listenPort netty服务器端口
     */
    public void setListenPort(int listenPort);
    
    /**
     * 功能说明: 获取服务端IDLE事件超时时间
     *
     * @return serverChannelMaxIdleTimeSeconds 服务端IDLE事件超时时间
     */
    public int getServerChannelMaxIdleTimeSeconds();
    
    /**
     * 功能说明: 设置服务端IDLE事件超时时间
     *
     * @param serverChannelMaxIdleTimeSeconds 服务端IDLE事件超时时间
     */
    public void setServerChannelMaxIdleTimeSeconds(int serverChannelMaxIdleTimeSeconds);
    
    /**
     * 功能说明: 获取发送缓冲器大小
     *
     * @return serverSocketSndBufSize 发送缓冲器大小
     */
    public int getSocketSndBufSize();
    
    /**
     * 功能说明: 设置发送缓冲器大小
     *
     * @param serverSocketSndBufSize 发送缓冲器大小
     */
    public void setSocketSndBufSize(int serverSocketSndBufSize);
    
    /**
     * 功能说明: 获取接收缓冲器大小
     *
     * @return serverSocketRcvBufSize 接收缓冲器大小
     */
    public int getSocketRcvBufSize();
    
    /**
     * 功能说明: 设置接收缓冲器大小
     *
     * @param serverSocketRcvBufSize 接收缓冲器大小
     */
    public void setSocketRcvBufSize(int serverSocketRcvBufSize);
    
    /**
     * 功能说明: 获取服务端处理请求线程池大小
     *
     * @return processorExecutorThreads 服务端处理请求线程池大小
     */
    public int getProcessorExecutorThreads();
    
    /**
     * 功能说明: 设置服务端处理请求线程池大小
     *
     * @param processorExecutorThreads 服务端处理请求线程池大小
     */
    public void setProcessorExecutorThreads(int processorExecutorThreads);
    
    /**
     * 功能说明: 获取服务端回调线程池大小
     *
     * @return callbackExecutorThreads 服务端回调线程池大小
     */
    public int getCallbackExecutorThreads();
    
    /**
     * 功能说明: 设置服务端回调线程池大小
     *
     * @param callbackExecutorThreads 服务端回调线程池大小
     */
    public void setCallbackExecutorThreads(int callbackExecutorThreads);
    
    /**
     * 功能说明: 获取信号量，异步调用情况会使用，防止本地Netty缓存请求过多
     *
     * @return permitsOneway 信号量，异步调用情况会使用，防止本地Netty缓存请求过多
     */
    public int getPermitsOneway();
    
    /**
     * 功能说明: 设置信号量，异步调用情况会使用，防止本地Netty缓存请求过多
     *
     * @param permitsOneway 信号量，异步调用情况会使用，防止本地Netty缓存请求过多
     */
    public void setPermitsOneway(int permitsOneway);
    
    /**
     * 功能说明: 获取信号量，Oneway情况会使用，防止本地Netty缓存请求过多
     *
     * @return permitsAsync 信号量，Oneway情况会使用，防止本地Netty缓存请求过多
     */
    public int getPermitsAsync();
    
    /**
     * 功能说明: 设置信号量，Oneway情况会使用，防止本地Netty缓存请求过多
     *
     * @param permitsAsync 信号量，Oneway情况会使用，防止本地Netty缓存请求过多
     */
    public void setPermitsAsync(int permitsAsync);
    
    /**
     * 功能说明: 获取boss循环器线程数
     *
     * @return workGroupThreads boss循环器线程数
     */
    public int getWorkGroupThreads();
    
    /**
     * 功能说明: 设置boss循环器线程数
     *
     * @param workGroupThreads boss循环器线程数
     */
    public void setWorkGroupThreads(int workGroupThreads);
    
    
    /**
     * 功能说明: 获取IO线程处理线程池
     *
     * @return selectorThreads IO线程处理线程池
     */
    public int getSelectorThreads();
    
    /**
     * 功能说明: 设置IO线程处理线程池
     *
     * @param selectorThreads IO线程处理线程池 
     */
    public void setSelectorThreads(int selectorThreads);
    
}
